package com.weighing.system.domain.server;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.weighing.system.utils.SerialNumberUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 称重/下料单明细
 * 对应表名：CU_CUZLLSub
 */
@Data
@TableName("CU_CUZLLSub")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class WeighingDetail implements Cloneable{

    /** 标识号（主键，自增） */
    @TableId(value = "RowCode", type = IdType.AUTO)
    private Integer rowCode;

    /** 单据编号 */
    @TableField("BillNo")
    private String billNo;

    /** 序号 */
    @TableField("RowNo")
    private Integer rowNo;

    /** 来源单种类 */
    @TableField("FromSourceTag")
    private Integer fromSourceTag;

    /** 流程配置编号 */
    @TableField("FromTransId")
    private Long fromTransId;

    /** 来源单号 */
    @TableField("FromBillNo")
    private String fromBillNo;

    /** 来源标识号 */
    @TableField("FromRowCode")
    private Integer fromRowCode;

    /** 物料代码 */
    @TableField("CU_MaterialId")
    private String cuMaterialId;

    /** 本次称重量 */
    @TableField("CU_quantity")
    private BigDecimal cuQuantity;

    /** 宽 */
    @TableField("CU_kuan")
    private BigDecimal cuKuan;

    /** 长 */
    @TableField("CU_chang")
    private BigDecimal cuChang;

    /** 卷 */
    @TableField("CU_juan")
    private BigDecimal cuJuan;

    /** 比例 */
    @TableField("CU_bl")
    private BigDecimal cuBl;

    /** 批号 */
    @TableField("CU_batchNo")
    private String cuBatchNo;

    /** 称重时间*/
    @TableField("CU_czTime")
    private Long cuCzTime;

    /** 是否称重（1=是,0=否） */
    @TableField("CU_isWeighing")
    private Boolean cuIsWeighing;

    /** 是否主胶（1=是,0=否） */
    @TableField("CU_isMainMaterial")
    private Boolean cuIsMainMaterial;

    /** 生产允领量 */
    @TableField("CU_RemainTakeQty")
    private BigDecimal cuRemainTakeQty;

    /** 累计称重量 */
    @TableField("CU_TotalQuantity")
    private BigDecimal cuTotalQuantity;

    /** 本次称重量 */
    @TableField("CU_Cumulative_Quantity")
    private BigDecimal cumulativeQuantity;

    /** 下料时间 */
    @TableField("CU_xlTime")
    private Long cuXlTime;

    /**
     * 创建人
     */
    @TableField("CU_CreatorId")
    private String creatorId;

    @TableField(exist = false)
    private String creatorName;

    /**
     * 创建人
     */
    @TableField("CU_Authorizer_person_id")
    private String authorizerPersonId;

    @TableField(exist = false)
    private String authorizerPersonName;

    /**
     * 创建时间
     */
    @TableField("cu_CreateTime")
    private Long createTime;

    /**
     * 最后修改人
     */
    @TableField("cu_LastOperatorId")
    private String lastOperatorId;

    /**
     * 最后修改时间
     */
    @TableField("CU_LastOperateTime")
    private Long lastOperateTime;

    /**
     * 对应工单物料明细信息
     */
    @TableField(exist = false)
    private ProduceOrderDetail produceOrderDetail;

    @Override
    public WeighingDetail clone() {
        try {
            return (WeighingDetail) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new AssertionError();
        }
    }

//    public Long getCuCzTime() {
//        return SerialNumberUtil.restoreOriginalTimestamp(this.cuCzTime);
//    }
//
//    public Long getCuXlTime() {
//        return SerialNumberUtil.restoreOriginalTimestamp(this.cuXlTime);
//    }
//
//    public Long getCreateTime() {
//        return SerialNumberUtil.restoreOriginalTimestamp(this.createTime);
//    }
//
//    public Long getLastOperateTime() {
//        return SerialNumberUtil.restoreOriginalTimestamp(this.lastOperateTime);
//    }

}
